package com.shenhaofeng.user;


/**
 * 自定义的user对象和属性的桥接器
 * Created by Administrator on 2016/9/9.
 */
public abstract class PropertyBridge<T> {


    /**
     * 在保存属性时将会被调用,将指定类型的User对象的值传递到PropertyBundle中以键值对的方式保存
     *
     * @param bundle
     */
    protected abstract void onMapProperty(T userData, PropertyBundle bundle);


    /**
     * 在保存用户名时将会被调用，将数据中的username取出保存
     *
     * @param userData
     * @return username的值
     */
    protected abstract String onMapUsername(T userData);


    /**
     * 如果需要的话，该方法提供了一个映射Token的方法，可以从user信息中提取出token以备后续使用
     *
     * @param userData
     * @return
     */
    protected abstract String onMapToken(T userData);

}
